---
title: 解构赋值
---

import destructuringObjects from '../../../../examples/files/javascript/destructuringObjects.js'
import destructuringArrays from '../../../../examples/files/javascript/destructuringArrays.js'
import destructuringFunctionArguments from '../../../../examples/files/javascript/destructuringFunctionArguments.js'
import destructuringAdvanced from '../../../../examples/files/javascript/destructuringAdvanced.js'

我们可以使用**解构赋值**来从对象或数组中提取多个值，并将它们一起赋值给多个变量。

---

## 解构对象

将多个属性从一个对象里取出。

<Example title="Destructuring objects" width={0} code={destructuringObjects} />

---

## 解构数组

将多个属性从一个数组里取出。

<Example title="Destructuring arrays" width={0} code={destructuringArrays} />

---

## 从函数实参的对象中提取数据

自动解构传入函数的实参，并从中提取分解后的数据。

<Example
  title="Destructuring function arguments"
  width={0}
  code={destructuringFunctionArguments}
/>

---

## 高阶解构

我们还可以嵌套并重命名解构变量并提供默认值。

这里的 `...` 是剩余语法，用来收集剩余值。<Details>剩余语法是展开语法的逆操作。</Details>

<Example
  title="Advanced destructuring"
  width={0}
  code={destructuringAdvanced}
/>
